This invention relates generally to color correction, and in particular to a method for performing color correction to allow for visually exact duplication of colors in systems of color input and output devices, where each device may have different color representation capabilities.
While most color correction is today done in film or using analog devices which themselves add distortions to the color result, the method of digital color control and correction as described herein affords for the first time a practicable capability of accurately controlling different color handling characteristics to achieve visually exact duplication of color input and output.
A page containing colors to be reproduced is typically sensed by a color separation scanner which breaks up the page into a number of discrete pixels, each of which is analyzed to determine its color content. The scanner provides color information in terms of three primary colors which represent the components of the sensed color in a three dimensional space.
Generally, it would be possible to use the output from the scanner to reproduce colors in the output devices or the printed page if the filters used by the scanner were perfect, the color handling characteristics of the output devices were identical, and the inks used in the printing process were perfect colors and were linear over the dynamic range of the ink values, and if the paper used in printing were perfectly white. In practice, however, filters are not capable of perfectly separating colors, color handling capabilities such as amount of available resolution varies widely among output devices, and inks and papers vary from the ideal. Consequently, it has been found necessary to correct the color values generated by the scanner to account for these and other factors which affect the colors reproduced in intermediate output devices such as a CRT or by final output devices used in printing the final copy.
This correction may be performed by loading a memory with the corrected color values corresponding to all visually discernible combinations of input color component values and by using the output of the scanner to address this memory.
However, the domain of all possible input color component combinations must be made quite large so that a wide range of colors can be reproduced, e.g., on the order of 2.sup.24 possible combinations, and hence the memory must contain a like number of memory positions so as to be capable of providing a corrected color value for each combination of input color components. Obviously, such a large memory is prohibitively expensive.
An attempt at solving this problem has been made by storing the corrected color values for only a fraction of the total number of input color combinations. A corrected color value for those input color combinations not having a corresponding corrected value in the memory is derived by interpolating along the three axes between two of the values stored in the memory. However, this type of interpolation process along the three axes produces discontinuities in the gray scale when the color increments along the three axes are not equal, resulting in the introduction of errors in the color correction process.